/*
* ============================================================================
*  Name        : sea_config.h
*  Part of     : Finite state machine framework
*  Description : Configucation parameters
*  Version     : %version: %
*  
*
* ============================================================================
*/
#if !defined( __sea_config_h__ )
#define __sea_config_h__

/**
 * @file sea_config.h
 *
 * @defgroup StateMachineFramework State Machine Framework Components
 *
 * @defgroup AssociationUtilities Associations Library
 *
 * @defgroup Platforms Platform Components
 *
 * @defgroup DebugUtilities Debug/Trace Components
 *
 */
#if defined( DOXYGEN )
    #define SEA_OS_WIN32
#elif defined( QT ) || defined( QT_CORE_LIB ) || defined( QT_GUI_LIB )
    #define SEA_OS_QT
#elif ( defined( SYMBIAN ) || defined( __SYMBIAN32__ ) || defined( EPOC ) ) && !defined( WIN32 )
    #define SEA_OS_SOS
#elif defined( POSIX ) || defined( __unix__ ) || defined( __linux__ ) || defined( __FreeBSD__ )
    #define SEA_OS_LINUX
#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( WINCE ) || defined( _WIN32_WCE )
    #define SEA_OS_WIN32
#else
    #define SEA_OS_LESS
#endif

/**
 * Sort associations by most recently used rule
 */
#if 0
    #define USE_MRU_ASSOCIATIONS
#endif

/**
 * Log state machine life cycle
 */
#if 1
    #define SEA_LOG
#endif

/**
 * Save to a file compiled state machine
 */
#if 0
    #define STORE_BIN_CODE
#endif

/**
 * Enable static allocation of MetaAction and MetaEvent to improve
 * state machine class instantiation speed
 */
#if 0
    #define STATIC_META_DATA_ENABLED
#endif

/**
 * Test associations management overhead. Allocate contigious memory chunk and do not release it
 */
#if 0
    #define ASSOCIATIONS_MEMORY_TEST
#endif

/**
 * Memory tracking
 */
#if 1
    #define MEM_TRACKING
#endif

#endif // #if !defined( __sea_config_h__ )
